package com.cet.designpatterns.memento;

import java.util.HashMap;
import java.util.Map;

/**
 * 管理者
 */
class Caretaker {

    /**
     * 维护一个发起人的一次状态
     */
    // private Memento memento;

    /**
     * 维护一个发起人的多次状态
     */
    // private Deque<Memento> stack = new LinkedList<>();

    /**
     * 维护多个发起人的多次状态
     */
    // private Map<String, Deque<Memento>> dequeMap = new HashMap<>();


    /**
     * 维护多个发起人的一次状态
     */
    private Map<String, Memento> mementoMap = new HashMap<>();

    private Caretaker() {
    }

    private static class SingletonInstance {
        private static final Caretaker INSTANCE = new Caretaker();
    }

    public static Caretaker getInstance() {
        return SingletonInstance.INSTANCE;
    }

    public void setMemento(String name, Memento m) {
        mementoMap.put(name, m);
    }

    public Memento getMemento(String name) {
        return mementoMap.get(name);
    }
}
